package cn.lingyangwl.agile.infra.gen.model.rqrs;

import cn.lingyangwl.agile.model.constants.*;
import cn.lingyangwl.framework.validation.group.*;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @see cn.lingyangwl.agile.infra.gen.model.entity.GenTable
 * @author shenguangyang
 */
@Getter
@Setter
public class GenTableBase {
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @NotNull(message = ValidationCons.NOT_EMPTY, groups = UpdateGroup.class)
    private Long id;

    /**
     * 数据源id
     */
    private Long datasourceId;
    /**
     * 数据源id
     */
    private String datasourceName;

    /**
     * 类名
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String className;

    /**
     * 表名称
     */
    private String tableName;

    /**
     * 表描述
     */
    private String tableComment;

    /**
     * 使用的模板（crud单表操作 tree树表操作 sub主子表操作）
     */
    private String tplCategory;

    /**
     * 生成包路径
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String packageName;

    /**
     * 生成模块名
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String moduleName;

    /**
     * 生成功能名
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String functionName;

    /**
     * 生成作者
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String author;

    /**
     * 生成的版本
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String genVersion;

    /**
     * 删除的前缀
     */
    private String delPrefix;

    /**
     * 模板组id
     */
    @NotNull(message = ValidationCons.NOT_EMPTY)
    private Long templateGroupId;

    /**
     * 说明, 一般用于类描述
     */
    private String description;
}
